n, K = map(int, input().split()); M = 10**9+7 from collections import defaultdict sup = lambda: defaultdict(lambda: 0) def mul(a, b): c = defaultdict(sup) for i in a: for k in a[i]: for j in b[k]: c[i][j] += a[i][k]*b[k][j]; c[i][j] %= M return c def pow(mat, n): if n == 1: return mat if n % 2: return mul(pow(mat, n-1), mat) return pow(mul(mat, mat), n//2) Z = defaultdict(sup); H = [] for i in range(1<>k)%2 > (bm>>k+1)%2 == (i>>k)%2: ok = 0; break if (bm>>k)%2 < (bm>>k+1)%2: nxt |= 1<